

package jetbrains.buildServer.server.rest.service.versionedSettings;

import jetbrains.buildServer.server.rest.jersey.provider.annotated.JerseyInjectable;
import jetbrains.buildServer.server.rest.model.versionedSettings.VersionedSettingsContextParameters;
import jetbrains.buildServer.serverSide.SProject;
import org.jetbrains.annotations.NotNull;

@JerseyInjectable
public interface VersionedSettingsDslParametersService {

  /**
   * Returns a list containing both DSL context parameters specified in project config
   * and empty required parameters for DSL run
   * @param project project with enabled versioned settings feature
   * @return see above
   */
  @NotNull VersionedSettingsContextParameters getVersionedSettingsContextParameters(@NotNull SProject project);

  /**
   * Sets given versioned settings DSL context parameters
   * @param project project with enabled versioned settings feature
   * @param versionedSettingsContextParameters context parameters to set
   */
  void setVersionedSettingsContextParameters(@NotNull SProject project,
                                             @NotNull VersionedSettingsContextParameters versionedSettingsContextParameters);

}